import axios from "axios";
// 引入elementui
import { ElMessage } from "element-plus";
import router from "../router";

export function request(config) {
	const instance = axios.create();

	// 请求拦截
	instance.interceptors.request.use(
		(config) => {
			// 加载动画
			// startLoading();

			if (localStorage.blog_publish_token) {
				// 设置统一的请求头
				config.headers.Authorization = localStorage.blog_publish_token;
			}

			// 放行
			return config;
		},
		(error) => {
			return Promise.reject(error);
		}
	);

	// 响应拦截
	instance.interceptors.response.use(
		(response) => {
			// 停止动画
			// endLoading();
			return response;
		},
		(error) => {
			// 错误提醒
			// endLoading();

			if (error.response) {
				// 获取错误状态码
				const { status } = error.response;
				if (status == 401) {
					ElMessage.error("token失效,请重新登录");
					// 清除token
					localStorage.removeItem("blog_publish_token");
					// 跳转到登录页面
					router.push({ path: "/login" });
				} else {
					ElMessage.error(error.response.data);
				}
			} else {
				ElMessage.error("网络错误，请稍后再试!");
			}

			return Promise.reject(error);
		}
	);

	return instance(config);
}
